
find_device3:     file format elf64-littleaarch64


Disassembly of section .init:

0000000000400848 <_init>:
  400848:	a9bf7bfd 	stp	x29, x30, [sp, #-16]!
  40084c:	910003fd 	mov	x29, sp
  400850:	9400006a 	bl	4009f8 <call_weak_fn>
  400854:	a8c17bfd 	ldp	x29, x30, [sp], #16
  400858:	d65f03c0 	ret

Disassembly of section .plt:

0000000000400860 <.plt>:
  400860:	a9bf7bf0 	stp	x16, x30, [sp, #-16]!
  400864:	b0000090 	adrp	x16, 411000 <__FRAME_END__+0xfe74>
  400868:	f947fe11 	ldr	x17, [x16, #4088]
  40086c:	913fe210 	add	x16, x16, #0xff8
  400870:	d61f0220 	br	x17
  400874:	d503201f 	nop
  400878:	d503201f 	nop
  40087c:	d503201f 	nop

0000000000400880 <memcpy@plt>:
  400880:	d0000090 	adrp	x16, 412000 <memcpy@GLIBC_2.17>
  400884:	f9400211 	ldr	x17, [x16]
  400888:	91000210 	add	x16, x16, #0x0
  40088c:	d61f0220 	br	x17

0000000000400890 <strtok@plt>:
  400890:	d0000090 	adrp	x16, 412000 <memcpy@GLIBC_2.17>
  400894:	f9400611 	ldr	x17, [x16, #8]
  400898:	91002210 	add	x16, x16, #0x8
  40089c:	d61f0220 	br	x17

00000000004008a0 <fclose@plt>:
  4008a0:	d0000090 	adrp	x16, 412000 <memcpy@GLIBC_2.17>
  4008a4:	f9400a11 	ldr	x17, [x16, #16]
  4008a8:	91004210 	add	x16, x16, #0x10
  4008ac:	d61f0220 	br	x17

00000000004008b0 <atoi@plt>:
  4008b0:	d0000090 	adrp	x16, 412000 <memcpy@GLIBC_2.17>
  4008b4:	f9400e11 	ldr	x17, [x16, #24]
  4008b8:	91006210 	add	x16, x16, #0x18
  4008bc:	d61f0220 	br	x17

00000000004008c0 <fopen@plt>:
  4008c0:	d0000090 	adrp	x16, 412000 <memcpy@GLIBC_2.17>
  4008c4:	f9401211 	ldr	x17, [x16, #32]
  4008c8:	91008210 	add	x16, x16, #0x20
  4008cc:	d61f0220 	br	x17

00000000004008d0 <__libc_start_main@plt>:
  4008d0:	d0000090 	adrp	x16, 412000 <memcpy@GLIBC_2.17>
  4008d4:	f9401611 	ldr	x17, [x16, #40]
  4008d8:	9100a210 	add	x16, x16, #0x28
  4008dc:	d61f0220 	br	x17

00000000004008e0 <strrchr@plt>:
  4008e0:	d0000090 	adrp	x16, 412000 <memcpy@GLIBC_2.17>
  4008e4:	f9401a11 	ldr	x17, [x16, #48]
  4008e8:	9100c210 	add	x16, x16, #0x30
  4008ec:	d61f0220 	br	x17

00000000004008f0 <bzero@plt>:
  4008f0:	d0000090 	adrp	x16, 412000 <memcpy@GLIBC_2.17>
  4008f4:	f9401e11 	ldr	x17, [x16, #56]
  4008f8:	9100e210 	add	x16, x16, #0x38
  4008fc:	d61f0220 	br	x17

0000000000400900 <__gmon_start__@plt>:
  400900:	d0000090 	adrp	x16, 412000 <memcpy@GLIBC_2.17>
  400904:	f9402211 	ldr	x17, [x16, #64]
  400908:	91010210 	add	x16, x16, #0x40
  40090c:	d61f0220 	br	x17

0000000000400910 <abort@plt>:
  400910:	d0000090 	adrp	x16, 412000 <memcpy@GLIBC_2.17>
  400914:	f9402611 	ldr	x17, [x16, #72]
  400918:	91012210 	add	x16, x16, #0x48
  40091c:	d61f0220 	br	x17

0000000000400920 <access@plt>:
  400920:	d0000090 	adrp	x16, 412000 <memcpy@GLIBC_2.17>
  400924:	f9402a11 	ldr	x17, [x16, #80]
  400928:	91014210 	add	x16, x16, #0x50
  40092c:	d61f0220 	br	x17

0000000000400930 <puts@plt>:
  400930:	d0000090 	adrp	x16, 412000 <memcpy@GLIBC_2.17>
  400934:	f9402e11 	ldr	x17, [x16, #88]
  400938:	91016210 	add	x16, x16, #0x58
  40093c:	d61f0220 	br	x17

0000000000400940 <memcmp@plt>:
  400940:	d0000090 	adrp	x16, 412000 <memcpy@GLIBC_2.17>
  400944:	f9403211 	ldr	x17, [x16, #96]
  400948:	91018210 	add	x16, x16, #0x60
  40094c:	d61f0220 	br	x17

0000000000400950 <getline@plt>:
  400950:	d0000090 	adrp	x16, 412000 <memcpy@GLIBC_2.17>
  400954:	f9403611 	ldr	x17, [x16, #104]
  400958:	9101a210 	add	x16, x16, #0x68
  40095c:	d61f0220 	br	x17

0000000000400960 <free@plt>:
  400960:	d0000090 	adrp	x16, 412000 <memcpy@GLIBC_2.17>
  400964:	f9403a11 	ldr	x17, [x16, #112]
  400968:	9101c210 	add	x16, x16, #0x70
  40096c:	d61f0220 	br	x17

0000000000400970 <fwrite@plt>:
  400970:	d0000090 	adrp	x16, 412000 <memcpy@GLIBC_2.17>
  400974:	f9403e11 	ldr	x17, [x16, #120]
  400978:	9101e210 	add	x16, x16, #0x78
  40097c:	d61f0220 	br	x17

0000000000400980 <strcpy@plt>:
  400980:	d0000090 	adrp	x16, 412000 <memcpy@GLIBC_2.17>
  400984:	f9404211 	ldr	x17, [x16, #128]
  400988:	91020210 	add	x16, x16, #0x80
  40098c:	d61f0220 	br	x17

0000000000400990 <strstr@plt>:
  400990:	d0000090 	adrp	x16, 412000 <memcpy@GLIBC_2.17>
  400994:	f9404611 	ldr	x17, [x16, #136]
  400998:	91022210 	add	x16, x16, #0x88
  40099c:	d61f0220 	br	x17

00000000004009a0 <printf@plt>:
  4009a0:	d0000090 	adrp	x16, 412000 <memcpy@GLIBC_2.17>
  4009a4:	f9404a11 	ldr	x17, [x16, #144]
  4009a8:	91024210 	add	x16, x16, #0x90
  4009ac:	d61f0220 	br	x17

Disassembly of section .text:

00000000004009b0 <_start>:
  4009b0:	d280001d 	mov	x29, #0x0                   	// #0
  4009b4:	d280001e 	mov	x30, #0x0                   	// #0
  4009b8:	aa0003e5 	mov	x5, x0
  4009bc:	f94003e1 	ldr	x1, [sp]
  4009c0:	910023e2 	add	x2, sp, #0x8
  4009c4:	910003e6 	mov	x6, sp
  4009c8:	580000c0 	ldr	x0, 4009e0 <_start+0x30>
  4009cc:	580000e3 	ldr	x3, 4009e8 <_start+0x38>
  4009d0:	58000104 	ldr	x4, 4009f0 <_start+0x40>
  4009d4:	97ffffbf 	bl	4008d0 <__libc_start_main@plt>
  4009d8:	97ffffce 	bl	400910 <abort@plt>
  4009dc:	00000000 	.inst	0x00000000 ; undefined
  4009e0:	00400f90 	.word	0x00400f90
  4009e4:	00000000 	.word	0x00000000
  4009e8:	00400fd8 	.word	0x00400fd8
  4009ec:	00000000 	.word	0x00000000
  4009f0:	00401058 	.word	0x00401058
  4009f4:	00000000 	.word	0x00000000

00000000004009f8 <call_weak_fn>:
  4009f8:	b0000080 	adrp	x0, 411000 <__FRAME_END__+0xfe74>
  4009fc:	f947f000 	ldr	x0, [x0, #4064]
  400a00:	b4000040 	cbz	x0, 400a08 <call_weak_fn+0x10>
  400a04:	17ffffbf 	b	400900 <__gmon_start__@plt>
  400a08:	d65f03c0 	ret
  400a0c:	00000000 	.inst	0x00000000 ; undefined

0000000000400a10 <deregister_tm_clones>:
  400a10:	d0000080 	adrp	x0, 412000 <memcpy@GLIBC_2.17>
  400a14:	9102a000 	add	x0, x0, #0xa8
  400a18:	d0000081 	adrp	x1, 412000 <memcpy@GLIBC_2.17>
  400a1c:	9102a021 	add	x1, x1, #0xa8
  400a20:	eb00003f 	cmp	x1, x0
  400a24:	540000a0 	b.eq	400a38 <deregister_tm_clones+0x28>  // b.none
  400a28:	b0000001 	adrp	x1, 401000 <__libc_csu_init+0x28>
  400a2c:	f9403c21 	ldr	x1, [x1, #120]
  400a30:	b4000041 	cbz	x1, 400a38 <deregister_tm_clones+0x28>
  400a34:	d61f0020 	br	x1
  400a38:	d65f03c0 	ret
  400a3c:	d503201f 	nop

0000000000400a40 <register_tm_clones>:
  400a40:	d0000080 	adrp	x0, 412000 <memcpy@GLIBC_2.17>
  400a44:	9102a000 	add	x0, x0, #0xa8
  400a48:	d0000081 	adrp	x1, 412000 <memcpy@GLIBC_2.17>
  400a4c:	9102a021 	add	x1, x1, #0xa8
  400a50:	cb000021 	sub	x1, x1, x0
  400a54:	9343fc21 	asr	x1, x1, #3
  400a58:	8b41fc21 	add	x1, x1, x1, lsr #63
  400a5c:	9341fc21 	asr	x1, x1, #1
  400a60:	b40000a1 	cbz	x1, 400a74 <register_tm_clones+0x34>
  400a64:	b0000002 	adrp	x2, 401000 <__libc_csu_init+0x28>
  400a68:	f9404042 	ldr	x2, [x2, #128]
  400a6c:	b4000042 	cbz	x2, 400a74 <register_tm_clones+0x34>
  400a70:	d61f0040 	br	x2
  400a74:	d65f03c0 	ret

0000000000400a78 <__do_global_dtors_aux>:
  400a78:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
  400a7c:	910003fd 	mov	x29, sp
  400a80:	f9000bf3 	str	x19, [sp, #16]
  400a84:	d0000093 	adrp	x19, 412000 <memcpy@GLIBC_2.17>
  400a88:	3942a260 	ldrb	w0, [x19, #168]
  400a8c:	35000080 	cbnz	w0, 400a9c <__do_global_dtors_aux+0x24>
  400a90:	97ffffe0 	bl	400a10 <deregister_tm_clones>
  400a94:	52800020 	mov	w0, #0x1                   	// #1
  400a98:	3902a260 	strb	w0, [x19, #168]
  400a9c:	f9400bf3 	ldr	x19, [sp, #16]
  400aa0:	a8c27bfd 	ldp	x29, x30, [sp], #32
  400aa4:	d65f03c0 	ret

0000000000400aa8 <frame_dummy>:
  400aa8:	17ffffe6 	b	400a40 <register_tm_clones>

0000000000400aac <drv_cp_file>:
  400aac:	a9b97bfd 	stp	x29, x30, [sp, #-112]!
  400ab0:	910003fd 	mov	x29, sp
  400ab4:	f90017a0 	str	x0, [x29, #40]
  400ab8:	f90013a1 	str	x1, [x29, #32]
  400abc:	b9001fa2 	str	w2, [x29, #28]
  400ac0:	f9000ba3 	str	x3, [x29, #16]
  400ac4:	b9006fbf 	str	wzr, [x29, #108]
  400ac8:	f90033bf 	str	xzr, [x29, #96]
  400acc:	f9002fbf 	str	xzr, [x29, #88]
  400ad0:	b90057bf 	str	wzr, [x29, #84]
  400ad4:	f9001fbf 	str	xzr, [x29, #56]
  400ad8:	f90027bf 	str	xzr, [x29, #72]
  400adc:	f9001bbf 	str	xzr, [x29, #48]
  400ae0:	52800001 	mov	w1, #0x0                   	// #0
  400ae4:	f94017a0 	ldr	x0, [x29, #40]
  400ae8:	97ffff8e 	bl	400920 <access@plt>
  400aec:	7100001f 	cmp	w0, #0x0
  400af0:	540000c0 	b.eq	400b08 <drv_cp_file+0x5c>  // b.none
  400af4:	b0000000 	adrp	x0, 401000 <__libc_csu_init+0x28>
  400af8:	91022000 	add	x0, x0, #0x88
  400afc:	97ffff8d 	bl	400930 <puts@plt>
  400b00:	12800000 	mov	w0, #0xffffffff            	// #-1
  400b04:	14000059 	b	400c68 <drv_cp_file+0x1bc>
  400b08:	b9406fa0 	ldr	w0, [x29, #108]
  400b0c:	7100001f 	cmp	w0, #0x0
  400b10:	54000aa1 	b.ne	400c64 <drv_cp_file+0x1b8>  // b.any
  400b14:	b0000000 	adrp	x0, 401000 <__libc_csu_init+0x28>
  400b18:	9102a000 	add	x0, x0, #0xa8
  400b1c:	aa0003e1 	mov	x1, x0
  400b20:	f94017a0 	ldr	x0, [x29, #40]
  400b24:	97ffff67 	bl	4008c0 <fopen@plt>
  400b28:	f90033a0 	str	x0, [x29, #96]
  400b2c:	b0000000 	adrp	x0, 401000 <__libc_csu_init+0x28>
  400b30:	9102c000 	add	x0, x0, #0xb0
  400b34:	aa0003e1 	mov	x1, x0
  400b38:	f94013a0 	ldr	x0, [x29, #32]
  400b3c:	97ffff61 	bl	4008c0 <fopen@plt>
  400b40:	f9002fa0 	str	x0, [x29, #88]
  400b44:	f9402fa0 	ldr	x0, [x29, #88]
  400b48:	f100001f 	cmp	x0, #0x0
  400b4c:	54000640 	b.eq	400c14 <drv_cp_file+0x168>  // b.none
  400b50:	f94033a0 	ldr	x0, [x29, #96]
  400b54:	f100001f 	cmp	x0, #0x0
  400b58:	540005e0 	b.eq	400c14 <drv_cp_file+0x168>  // b.none
  400b5c:	1400001b 	b	400bc8 <drv_cp_file+0x11c>
  400b60:	f94023a0 	ldr	x0, [x29, #64]
  400b64:	f100001f 	cmp	x0, #0x0
  400b68:	5400030d 	b.le	400bc8 <drv_cp_file+0x11c>
  400b6c:	b9401fa0 	ldr	w0, [x29, #28]
  400b70:	7100041f 	cmp	w0, #0x1
  400b74:	540001e1 	b.ne	400bb0 <drv_cp_file+0x104>  // b.any
  400b78:	f9401ba0 	ldr	x0, [x29, #48]
  400b7c:	f9400ba1 	ldr	x1, [x29, #16]
  400b80:	97ffff84 	bl	400990 <strstr@plt>
  400b84:	f90027a0 	str	x0, [x29, #72]
  400b88:	f94027a0 	ldr	x0, [x29, #72]
  400b8c:	f100001f 	cmp	x0, #0x0
  400b90:	540001c0 	b.eq	400bc8 <drv_cp_file+0x11c>  // b.none
  400b94:	f9401ba0 	ldr	x0, [x29, #48]
  400b98:	f94023a1 	ldr	x1, [x29, #64]
  400b9c:	f9402fa3 	ldr	x3, [x29, #88]
  400ba0:	d2800022 	mov	x2, #0x1                   	// #1
  400ba4:	97ffff73 	bl	400970 <fwrite@plt>
  400ba8:	b90057a0 	str	w0, [x29, #84]
  400bac:	14000007 	b	400bc8 <drv_cp_file+0x11c>
  400bb0:	f9401ba0 	ldr	x0, [x29, #48]
  400bb4:	f94023a1 	ldr	x1, [x29, #64]
  400bb8:	f9402fa3 	ldr	x3, [x29, #88]
  400bbc:	d2800022 	mov	x2, #0x1                   	// #1
  400bc0:	97ffff6c 	bl	400970 <fwrite@plt>
  400bc4:	b90057a0 	str	w0, [x29, #84]
  400bc8:	9100e3a1 	add	x1, x29, #0x38
  400bcc:	9100c3a0 	add	x0, x29, #0x30
  400bd0:	f94033a2 	ldr	x2, [x29, #96]
  400bd4:	97ffff5f 	bl	400950 <getline@plt>
  400bd8:	f90023a0 	str	x0, [x29, #64]
  400bdc:	f94023a0 	ldr	x0, [x29, #64]
  400be0:	b100041f 	cmn	x0, #0x1
  400be4:	54fffbe1 	b.ne	400b60 <drv_cp_file+0xb4>  // b.any
  400be8:	f94033a0 	ldr	x0, [x29, #96]
  400bec:	97ffff2d 	bl	4008a0 <fclose@plt>
  400bf0:	f9402fa0 	ldr	x0, [x29, #88]
  400bf4:	97ffff2b 	bl	4008a0 <fclose@plt>
  400bf8:	f9401ba0 	ldr	x0, [x29, #48]
  400bfc:	f100001f 	cmp	x0, #0x0
  400c00:	54000060 	b.eq	400c0c <drv_cp_file+0x160>  // b.none
  400c04:	f9401ba0 	ldr	x0, [x29, #48]
  400c08:	97ffff56 	bl	400960 <free@plt>
  400c0c:	b9006fbf 	str	wzr, [x29, #108]
  400c10:	14000015 	b	400c64 <drv_cp_file+0x1b8>
  400c14:	f94033a0 	ldr	x0, [x29, #96]
  400c18:	f100001f 	cmp	x0, #0x0
  400c1c:	540000e0 	b.eq	400c38 <drv_cp_file+0x18c>  // b.none
  400c20:	b0000000 	adrp	x0, 401000 <__libc_csu_init+0x28>
  400c24:	9102e000 	add	x0, x0, #0xb8
  400c28:	f94013a1 	ldr	x1, [x29, #32]
  400c2c:	97ffff5d 	bl	4009a0 <printf@plt>
  400c30:	f94033a0 	ldr	x0, [x29, #96]
  400c34:	97ffff1b 	bl	4008a0 <fclose@plt>
  400c38:	f9402fa0 	ldr	x0, [x29, #88]
  400c3c:	f100001f 	cmp	x0, #0x0
  400c40:	540000e0 	b.eq	400c5c <drv_cp_file+0x1b0>  // b.none
  400c44:	b0000000 	adrp	x0, 401000 <__libc_csu_init+0x28>
  400c48:	91034000 	add	x0, x0, #0xd0
  400c4c:	f94017a1 	ldr	x1, [x29, #40]
  400c50:	97ffff54 	bl	4009a0 <printf@plt>
  400c54:	f9402fa0 	ldr	x0, [x29, #88]
  400c58:	97ffff12 	bl	4008a0 <fclose@plt>
  400c5c:	12800000 	mov	w0, #0xffffffff            	// #-1
  400c60:	b9006fa0 	str	w0, [x29, #108]
  400c64:	b9406fa0 	ldr	w0, [x29, #108]
  400c68:	a8c77bfd 	ldp	x29, x30, [sp], #112
  400c6c:	d65f03c0 	ret

0000000000400c70 <find_device>:
  400c70:	d10943ff 	sub	sp, sp, #0x250
  400c74:	a9007bfd 	stp	x29, x30, [sp]
  400c78:	910003fd 	mov	x29, sp
  400c7c:	f9000fa0 	str	x0, [x29, #24]
  400c80:	52800020 	mov	w0, #0x1                   	// #1
  400c84:	b9023fa0 	str	w0, [x29, #572]
  400c88:	b9024fbf 	str	wzr, [x29, #588]
  400c8c:	f9010bbf 	str	xzr, [x29, #528]
  400c90:	f9001bbf 	str	xzr, [x29, #48]
  400c94:	b0000000 	adrp	x0, 401000 <__libc_csu_init+0x28>
  400c98:	91058000 	add	x0, x0, #0x160
  400c9c:	79400000 	ldrh	w0, [x0]
  400ca0:	790053a0 	strh	w0, [x29, #40]
  400ca4:	f9011bbf 	str	xzr, [x29, #560]
  400ca8:	9100e3a0 	add	x0, x29, #0x38
  400cac:	d2800181 	mov	x1, #0xc                   	// #12
  400cb0:	97ffff10 	bl	4008f0 <bzero@plt>
  400cb4:	910123a0 	add	x0, x29, #0x48
  400cb8:	d2803901 	mov	x1, #0x1c8                 	// #456
  400cbc:	97ffff0d 	bl	4008f0 <bzero@plt>
  400cc0:	b0000000 	adrp	x0, 401000 <__libc_csu_init+0x28>
  400cc4:	9103a002 	add	x2, x0, #0xe8
  400cc8:	b0000000 	adrp	x0, 401000 <__libc_csu_init+0x28>
  400ccc:	9103c001 	add	x1, x0, #0xf0
  400cd0:	b0000000 	adrp	x0, 401000 <__libc_csu_init+0x28>
  400cd4:	91042000 	add	x0, x0, #0x108
  400cd8:	aa0203e3 	mov	x3, x2
  400cdc:	b9423fa2 	ldr	w2, [x29, #572]
  400ce0:	97ffff73 	bl	400aac <drv_cp_file>
  400ce4:	b0000000 	adrp	x0, 401000 <__libc_csu_init+0x28>
  400ce8:	9102a001 	add	x1, x0, #0xa8
  400cec:	b0000000 	adrp	x0, 401000 <__libc_csu_init+0x28>
  400cf0:	9103c000 	add	x0, x0, #0xf0
  400cf4:	97fffef3 	bl	4008c0 <fopen@plt>
  400cf8:	f9011ba0 	str	x0, [x29, #560]
  400cfc:	14000095 	b	400f50 <find_device+0x2e0>
  400d00:	f9401ba0 	ldr	x0, [x29, #48]
  400d04:	52800401 	mov	w1, #0x20                  	// #32
  400d08:	97fffef6 	bl	4008e0 <strrchr@plt>
  400d0c:	f90113a0 	str	x0, [x29, #544]
  400d10:	b0000000 	adrp	x0, 401000 <__libc_csu_init+0x28>
  400d14:	91048000 	add	x0, x0, #0x120
  400d18:	f94113a1 	ldr	x1, [x29, #544]
  400d1c:	97ffff21 	bl	4009a0 <printf@plt>
  400d20:	f94113a0 	ldr	x0, [x29, #544]
  400d24:	f100001f 	cmp	x0, #0x0
  400d28:	54000041 	b.ne	400d30 <find_device+0xc0>  // b.any
  400d2c:	14000089 	b	400f50 <find_device+0x2e0>
  400d30:	f94113a0 	ldr	x0, [x29, #544]
  400d34:	91000400 	add	x0, x0, #0x1
  400d38:	f90113a0 	str	x0, [x29, #544]
  400d3c:	f94113a1 	ldr	x1, [x29, #544]
  400d40:	f9400fa0 	ldr	x0, [x29, #24]
  400d44:	97ffff0f 	bl	400980 <strcpy@plt>
  400d48:	9100e3a0 	add	x0, x29, #0x38
  400d4c:	d2800062 	mov	x2, #0x3                   	// #3
  400d50:	aa0003e1 	mov	x1, x0
  400d54:	f94113a0 	ldr	x0, [x29, #544]
  400d58:	97fffefa 	bl	400940 <memcmp@plt>
  400d5c:	7100001f 	cmp	w0, #0x0
  400d60:	540008e1 	b.ne	400e7c <find_device+0x20c>  // b.any
  400d64:	b0000000 	adrp	x0, 401000 <__libc_csu_init+0x28>
  400d68:	9104c000 	add	x0, x0, #0x130
  400d6c:	97fffef1 	bl	400930 <puts@plt>
  400d70:	b9024fbf 	str	wzr, [x29, #588]
  400d74:	f9401ba0 	ldr	x0, [x29, #48]
  400d78:	9100a3a1 	add	x1, x29, #0x28
  400d7c:	97fffec5 	bl	400890 <strtok@plt>
  400d80:	f90123a0 	str	x0, [x29, #576]
  400d84:	14000027 	b	400e20 <find_device+0x1b0>
  400d88:	b9424fa0 	ldr	w0, [x29, #588]
  400d8c:	7100081f 	cmp	w0, #0x2
  400d90:	54000381 	b.ne	400e00 <find_device+0x190>  // b.any
  400d94:	b9420ba0 	ldr	w0, [x29, #520]
  400d98:	51000400 	sub	w0, w0, #0x1
  400d9c:	93407c01 	sxtw	x1, w0
  400da0:	aa0103e0 	mov	x0, x1
  400da4:	d37df000 	lsl	x0, x0, #3
  400da8:	cb010000 	sub	x0, x0, x1
  400dac:	d37df000 	lsl	x0, x0, #3
  400db0:	91012fa1 	add	x1, x29, #0x4b
  400db4:	38606820 	ldrb	w0, [x1, x0]
  400db8:	39087fa0 	strb	w0, [x29, #543]
  400dbc:	f94123a0 	ldr	x0, [x29, #576]
  400dc0:	97fffebc 	bl	4008b0 <atoi@plt>
  400dc4:	2a0003e2 	mov	w2, w0
  400dc8:	b9420ba0 	ldr	w0, [x29, #520]
  400dcc:	51000400 	sub	w0, w0, #0x1
  400dd0:	39487fa1 	ldrb	w1, [x29, #543]
  400dd4:	2a0203e3 	mov	w3, w2
  400dd8:	93407c22 	sxtw	x2, w1
  400ddc:	93407c01 	sxtw	x1, w0
  400de0:	aa0103e0 	mov	x0, x1
  400de4:	d37df000 	lsl	x0, x0, #3
  400de8:	cb010000 	sub	x0, x0, x1
  400dec:	d37ff800 	lsl	x0, x0, #1
  400df0:	8b020000 	add	x0, x0, x2
  400df4:	d37ef400 	lsl	x0, x0, #2
  400df8:	910143a1 	add	x1, x29, #0x50
  400dfc:	b8206823 	str	w3, [x1, x0]
  400e00:	b9424fa0 	ldr	w0, [x29, #588]
  400e04:	11000400 	add	w0, w0, #0x1
  400e08:	b9024fa0 	str	w0, [x29, #588]
  400e0c:	9100a3a0 	add	x0, x29, #0x28
  400e10:	aa0003e1 	mov	x1, x0
  400e14:	d2800000 	mov	x0, #0x0                   	// #0
  400e18:	97fffe9e 	bl	400890 <strtok@plt>
  400e1c:	f90123a0 	str	x0, [x29, #576]
  400e20:	f94123a0 	ldr	x0, [x29, #576]
  400e24:	f100001f 	cmp	x0, #0x0
  400e28:	54fffb01 	b.ne	400d88 <find_device+0x118>  // b.any
  400e2c:	b9420ba0 	ldr	w0, [x29, #520]
  400e30:	51000402 	sub	w2, w0, #0x1
  400e34:	93407c41 	sxtw	x1, w2
  400e38:	aa0103e0 	mov	x0, x1
  400e3c:	d37df000 	lsl	x0, x0, #3
  400e40:	cb010000 	sub	x0, x0, x1
  400e44:	d37df000 	lsl	x0, x0, #3
  400e48:	91012fa1 	add	x1, x29, #0x4b
  400e4c:	38606820 	ldrb	w0, [x1, x0]
  400e50:	11000400 	add	w0, w0, #0x1
  400e54:	12001c03 	and	w3, w0, #0xff
  400e58:	93407c41 	sxtw	x1, w2
  400e5c:	aa0103e0 	mov	x0, x1
  400e60:	d37df000 	lsl	x0, x0, #3
  400e64:	cb010000 	sub	x0, x0, x1
  400e68:	d37df000 	lsl	x0, x0, #3
  400e6c:	91012fa1 	add	x1, x29, #0x4b
  400e70:	2a0303e2 	mov	w2, w3
  400e74:	38206822 	strb	w2, [x1, x0]
  400e78:	14000032 	b	400f40 <find_device+0x2d0>
  400e7c:	b0000000 	adrp	x0, 401000 <__libc_csu_init+0x28>
  400e80:	91050000 	add	x0, x0, #0x140
  400e84:	97fffeab 	bl	400930 <puts@plt>
  400e88:	b9420ba0 	ldr	w0, [x29, #520]
  400e8c:	910123a2 	add	x2, x29, #0x48
  400e90:	93407c01 	sxtw	x1, w0
  400e94:	aa0103e0 	mov	x0, x1
  400e98:	d37df000 	lsl	x0, x0, #3
  400e9c:	cb010000 	sub	x0, x0, x1
  400ea0:	d37df000 	lsl	x0, x0, #3
  400ea4:	8b000040 	add	x0, x2, x0
  400ea8:	d2800062 	mov	x2, #0x3                   	// #3
  400eac:	f94113a1 	ldr	x1, [x29, #544]
  400eb0:	97fffe74 	bl	400880 <memcpy@plt>
  400eb4:	b9024fbf 	str	wzr, [x29, #588]
  400eb8:	f9401ba0 	ldr	x0, [x29, #48]
  400ebc:	9100a3a1 	add	x1, x29, #0x28
  400ec0:	97fffe74 	bl	400890 <strtok@plt>
  400ec4:	f90123a0 	str	x0, [x29, #576]
  400ec8:	14000018 	b	400f28 <find_device+0x2b8>
  400ecc:	b9424fa0 	ldr	w0, [x29, #588]
  400ed0:	7100081f 	cmp	w0, #0x2
  400ed4:	540001a1 	b.ne	400f08 <find_device+0x298>  // b.any
  400ed8:	f94123a0 	ldr	x0, [x29, #576]
  400edc:	97fffe75 	bl	4008b0 <atoi@plt>
  400ee0:	2a0003e1 	mov	w1, w0
  400ee4:	b9420ba0 	ldr	w0, [x29, #520]
  400ee8:	2a0103e2 	mov	w2, w1
  400eec:	93407c01 	sxtw	x1, w0
  400ef0:	aa0103e0 	mov	x0, x1
  400ef4:	d37df000 	lsl	x0, x0, #3
  400ef8:	cb010000 	sub	x0, x0, x1
  400efc:	d37df000 	lsl	x0, x0, #3
  400f00:	910133a1 	add	x1, x29, #0x4c
  400f04:	b8206822 	str	w2, [x1, x0]
  400f08:	b9424fa0 	ldr	w0, [x29, #588]
  400f0c:	11000400 	add	w0, w0, #0x1
  400f10:	b9024fa0 	str	w0, [x29, #588]
  400f14:	9100a3a0 	add	x0, x29, #0x28
  400f18:	aa0003e1 	mov	x1, x0
  400f1c:	d2800000 	mov	x0, #0x0                   	// #0
  400f20:	97fffe5c 	bl	400890 <strtok@plt>
  400f24:	f90123a0 	str	x0, [x29, #576]
  400f28:	f94123a0 	ldr	x0, [x29, #576]
  400f2c:	f100001f 	cmp	x0, #0x0
  400f30:	54fffce1 	b.ne	400ecc <find_device+0x25c>  // b.any
  400f34:	b9420ba0 	ldr	w0, [x29, #520]
  400f38:	11000400 	add	w0, w0, #0x1
  400f3c:	b9020ba0 	str	w0, [x29, #520]
  400f40:	9100e3a0 	add	x0, x29, #0x38
  400f44:	d2800062 	mov	x2, #0x3                   	// #3
  400f48:	f94113a1 	ldr	x1, [x29, #544]
  400f4c:	97fffe4d 	bl	400880 <memcpy@plt>
  400f50:	910843a1 	add	x1, x29, #0x210
  400f54:	9100c3a0 	add	x0, x29, #0x30
  400f58:	f9411ba2 	ldr	x2, [x29, #560]
  400f5c:	97fffe7d 	bl	400950 <getline@plt>
  400f60:	f90117a0 	str	x0, [x29, #552]
  400f64:	f94117a0 	ldr	x0, [x29, #552]
  400f68:	b100041f 	cmn	x0, #0x1
  400f6c:	54ffeca1 	b.ne	400d00 <find_device+0x90>  // b.any
  400f70:	b9420ba1 	ldr	w1, [x29, #520]
  400f74:	b0000000 	adrp	x0, 401000 <__libc_csu_init+0x28>
  400f78:	91054000 	add	x0, x0, #0x150
  400f7c:	97fffe89 	bl	4009a0 <printf@plt>
  400f80:	b9420ba0 	ldr	w0, [x29, #520]
  400f84:	a9407bfd 	ldp	x29, x30, [sp]
  400f88:	910943ff 	add	sp, sp, #0x250
  400f8c:	d65f03c0 	ret

0000000000400f90 <main>:
  400f90:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
  400f94:	910003fd 	mov	x29, sp
  400f98:	b9001fbf 	str	wzr, [x29, #28]
  400f9c:	f9000bbf 	str	xzr, [x29, #16]
  400fa0:	b9001bbf 	str	wzr, [x29, #24]
  400fa4:	910043a0 	add	x0, x29, #0x10
  400fa8:	97ffff32 	bl	400c70 <find_device>
  400fac:	b9001fa0 	str	w0, [x29, #28]
  400fb0:	910043a1 	add	x1, x29, #0x10
  400fb4:	b0000000 	adrp	x0, 401000 <__libc_csu_init+0x28>
  400fb8:	9105a000 	add	x0, x0, #0x168
  400fbc:	aa0103e2 	mov	x2, x1
  400fc0:	b9401fa1 	ldr	w1, [x29, #28]
  400fc4:	97fffe77 	bl	4009a0 <printf@plt>
  400fc8:	52800000 	mov	w0, #0x0                   	// #0
  400fcc:	a8c27bfd 	ldp	x29, x30, [sp], #32
  400fd0:	d65f03c0 	ret
  400fd4:	00000000 	.inst	0x00000000 ; undefined

0000000000400fd8 <__libc_csu_init>:
  400fd8:	a9bc7bfd 	stp	x29, x30, [sp, #-64]!
  400fdc:	910003fd 	mov	x29, sp
  400fe0:	a901d7f4 	stp	x20, x21, [sp, #24]
  400fe4:	b0000094 	adrp	x20, 411000 <__FRAME_END__+0xfe74>
  400fe8:	b0000095 	adrp	x21, 411000 <__FRAME_END__+0xfe74>
  400fec:	91374294 	add	x20, x20, #0xdd0
  400ff0:	913722b5 	add	x21, x21, #0xdc8
  400ff4:	a902dff6 	stp	x22, x23, [sp, #40]
  400ff8:	cb150294 	sub	x20, x20, x21
  400ffc:	f9001ff8 	str	x24, [sp, #56]
  401000:	2a0003f6 	mov	w22, w0
  401004:	aa0103f7 	mov	x23, x1
  401008:	9343fe94 	asr	x20, x20, #3
  40100c:	aa0203f8 	mov	x24, x2
  401010:	97fffe0e 	bl	400848 <_init>
  401014:	b4000194 	cbz	x20, 401044 <__libc_csu_init+0x6c>
  401018:	f9000bb3 	str	x19, [x29, #16]
  40101c:	d2800013 	mov	x19, #0x0                   	// #0
  401020:	f8737aa3 	ldr	x3, [x21, x19, lsl #3]
  401024:	aa1803e2 	mov	x2, x24
  401028:	aa1703e1 	mov	x1, x23
  40102c:	2a1603e0 	mov	w0, w22
  401030:	91000673 	add	x19, x19, #0x1
  401034:	d63f0060 	blr	x3
  401038:	eb13029f 	cmp	x20, x19
  40103c:	54ffff21 	b.ne	401020 <__libc_csu_init+0x48>  // b.any
  401040:	f9400bb3 	ldr	x19, [x29, #16]
  401044:	a941d7f4 	ldp	x20, x21, [sp, #24]
  401048:	a942dff6 	ldp	x22, x23, [sp, #40]
  40104c:	f9401ff8 	ldr	x24, [sp, #56]
  401050:	a8c47bfd 	ldp	x29, x30, [sp], #64
  401054:	d65f03c0 	ret

0000000000401058 <__libc_csu_fini>:
  401058:	d65f03c0 	ret

Disassembly of section .fini:

000000000040105c <_fini>:
  40105c:	a9bf7bfd 	stp	x29, x30, [sp, #-16]!
  401060:	910003fd 	mov	x29, sp
  401064:	a8c17bfd 	ldp	x29, x30, [sp], #16
  401068:	d65f03c0 	ret
